<?php
/**
 * Générateur de texte de type lorem ipsum
 *
 * @package App_Model_Tool
 * @author  nroche <nicolas.roche42@gmail.com>
 *
 */
class App_Model_Tools_LoremIpsumGenerator
{

    /**
     * Ensemble de mots
     * 
     * @var array
     */
    private static $_dictionnary = array(
        'lorem',
        'ipsum',
        'dolor',
        'sit',
        'amet',
        'consectetur',
        'adipiscing',
        'elit',
        'curabitur',
        'vel',
        'hendrerit',
        'libero',
        'eleifend',
        'blandit',
        'nunc',
        'ornare',
        'odio',
        'ut',
        'orci',
        'gravida',
        'imperdiet',
        'nullam',
        'purus',
        'lacinia',
        'a',
        'pretium',
        'quis',
        'congue',
        'praesent',
        'sagittis',
        'laoreet',
        'auctor',
        'mauris',
        'non',
        'velit',
        'eros',
        'dictum',
        'proin',
        'accumsan',
        'sapien',
        'nec',
        'massa',
        'volutpat',
        'venenatis',
        'sed',
        'eu',
        'molestie',
        'lacus',
        'quisque',
        'porttitor',
        'ligula',
        'dui',
        'mollis',
        'tempus',
        'at',
        'magna',
        'vestibulum',
        'turpis',
        'ac',
        'diam',
        'tincidunt',
        'id',
        'condimentum',
        'enim',
        'sodales',
        'in',
        'hac',
        'habitasse',
        'platea',
        'dictumst',
        'aenean',
        'neque',
        'fusce',
        'augue',
        'leo',
        'eget',
        'semper',
        'mattis',
        'tortor',
        'scelerisque',
        'nulla',
        'interdum',
        'tellus',
        'malesuada',
        'rhoncus',
        'porta',
        'sem',
        'aliquet',
        'et',
        'nam',
        'suspendisse',
        'potenti',
        'vivamus',
        'luctus',
        'fringilla',
        'erat',
        'donec',
        'justo',
        'vehicula',
        'ultricies',
        'varius',
        'ante',
        'primis',
        'faucibus',
        'ultrices',
        'posuere',
        'cubilia',
        'curae',
        'etiam',
        'cursus',
        'aliquam',
        'quam',
        'dapibus',
        'nisl',
        'feugiat',
        'egestas',
        'class',
        'aptent',
        'taciti',
        'sociosqu',
        'ad',
        'litora',
        'torquent',
        'per',
        'conubia',
        'nostra',
        'inceptos',
        'himenaeos',
        'phasellus',
        'nibh',
        'pulvinar',
        'vitae',
        'urna',
        'iaculis',
        'lobortis',
        'nisi',
        'viverra',
        'arcu',
        'morbi',
        'pellentesque',
        'metus',
        'commodo',
        'ut',
        'facilisis',
        'felis',
        'tristique',
        'ullamcorper',
        'placerat',
        'aenean',
        'convallis',
        'sollicitudin',
        'integer',
        'rutrum',
        'duis',
        'est',
        'etiam',
        'bibendum',
        'donec',
        'pharetra',
        'vulputate',
        'maecenas',
        'mi',
        'fermentum',
        'consequat',
        'suscipit',
        'aliquam',
        'habitant',
        'senectus',
        'netus',
        'fames',
        'quisque',
        'euismod',
        'curabitur',
        'lectus',
        'elementum',
        'tempor',
        'risus',
        'cras'
    );

    /**
     * Génère un texte aléatoire
     * 
     * @param int $length nombre de caractère désirés
     */
    public static function generate($length = 100)
    {
        $result = '';
        while (strlen($result) < $length) {
            $result .= self::$_dictionnary[mt_rand(0, count(self::$_dictionnary)-1)] . ' ';
        }
        return substr($result, 0, $length);
    }
}